<!doctype html>
<html lang="en">
<head>
    <title>Code coverage report for src/components/Engine/Framework/ListEngine.vue</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="..\..\..\..\prettify.css" />
    <link rel="stylesheet" href="..\..\..\..\base.css" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style type='text/css'>
        .coverage-summary .sorter {
            background-image: url(..\..\..\..\sort-arrow-sprite.png);
        }
    </style>
</head>
<body>
<div class='wrapper'>
  <div class='pad1'>
    <h1>
      <a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/components/Engine/Framework</a> ListEngine.vue
    </h1>
    <div class='clearfix'>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Statements</span>
        <span class='fraction'>0/130</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Branches</span>
        <span class='fraction'>0/78</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Functions</span>
        <span class='fraction'>0/41</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Lines</span>
        <span class='fraction'>0/130</span>
      </div>
    </div>
  </div>
  <div class='status-line low'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;template&gt;
  &lt;div v-if="source.data.id &amp;&amp; source.data.cellData" class="OctopusList"&gt;
    &lt;!--    {{source.data}}--&gt;
    &lt;div class="Operation" v-if="created || exported"&gt;
      &lt;div class="btn btn-success Button" v-if="created" v-on:click="created"&gt;Create&lt;/div&gt;
      &lt;div class="btn btn-warning Button" v-if="exported" v-on:click="output(source.data.cellData)"&gt;Export
      &lt;/div&gt;
      &lt;!--      &lt;div class="btn btn-info Button" v-on:click="open()"&gt;New Window&lt;/div&gt;--&gt;
    &lt;/div&gt;
    &lt;div class="Search" v-if="!source.data.parentModel &amp;&amp; isSearch"&gt;
      &lt;div v-bind:class="'Item'" v-for="cell in source.data.cellData"
           v-bind:style="{width:(cell.searchKey.toLocaleUpperCase() == 'BETWEEN'?cell.width*2:cell.width+50)+'px'}"
           v-if="!octopus.tools.IsNullOrEmpty(cell.searchKey) &amp;&amp; cell.show"&gt;
        &lt;div class="DisplayName"&gt;
          {{cell.displayName}}：
        &lt;/div&gt;
        &lt;!--针对BETWEEN范围查询，统一渲染2个控件，适用于数字、整型、日期，除此之外全部是单值绑定，如果控件自己有多选，则控件返回数组集合。--&gt;
        &lt;template v-if="cell.searchKey.toLocaleUpperCase() == 'BETWEEN'"&gt;
          &lt;div v-bind:style="{width:(cell.width)+'px',float:'left'}"&gt;
            &lt;o-control v-bind="{data:cell,index:0}" v-bind:changed="change"
                       v-model.lazy="cell.searchValue[0]"&gt;&lt;/o-control&gt;
          &lt;/div&gt;
          &lt;div v-bind:style="{width:(cell.width)+'px',float:'left','padding-left':'5px'}"&gt;
            &lt;o-control v-bind="{data:cell,index:1}" v-bind:changed="change"
                       v-model.lazy="cell.searchValue[1]"&gt;&lt;/o-control&gt;
          &lt;/div&gt;
        &lt;/template&gt;
        &lt;template v-else&gt;
          &lt;o-control v-bind="{data:cell}" v-bind:changed="change"
                     v-model.lazy="cell.searchValue"&gt;&lt;/o-control&gt;
        &lt;/template&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="Data"
         v-bind:style="{width:source.data.width == 'auto' || source.data.width == undefined ?'100%':source.data.width}"&gt;
      &lt;div class="Head" ref="LIST_HEAD"&gt;
        &lt;div class="Panel" v-bind:style="{width:(source.reallyWidth + source.configWidth + 1000) + 'px'}"&gt;
          &lt;div class="Config" v-if="viewed || modified || deleted"
               v-bind:style="{width:source.configWidth + 'px'}"&gt;&amp;nbsp;
          &lt;/div&gt;
          &lt;div v-for="cell in source.data.cellData" v-if="cell.show" v-bind:style="{width:cell.width + 'px'}"&gt;
            {{ cell.displayName }}
          &lt;/div&gt;
          &lt;div class="End" style="width: 1000px;"&gt;&amp;nbsp;&lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
      &lt;div class="Content" v-on:scroll="scroll($event.target)" v-bind:style="{height:control_height}"&gt;
        &lt;div class="Panel" v-bind:style="{width:(source.reallyWidth + source.configWidth) + 'px'}"
             v-for="row in source.data.queryData"&gt;
          &lt;div class="Config" v-if="viewed || modified || deleted"
               v-bind:style="{width:source.configWidth + 'px'}"&gt;
            &lt;span class="View glyphicon glyphicon-file" v-if="viewed"
                  v-on:click="viewed(row)"&gt;&lt;/span&gt;
            &lt;span class="Modify glyphicon glyphicon-pencil" v-if="modified"
                  v-on:click="modified(row)"&gt;&lt;/span&gt;
            &lt;span class="Delete glyphicon glyphicon-remove" v-if="deleted"
                  v-on:click="del(row)"&gt;&lt;/span&gt;
          &lt;/div&gt;
          &lt;div v-for="cell in source.data.cellData" v-if="cell.show"
               v-bind:style="{width:cell.width + 'px'}" v-html="parseCellValue(row,cell.name)"&gt;
            &lt;!--{{row[cell.name] == null?'&amp;nbsp;':(row[cell.name].toString().length&gt;0?row[cell.name]:'&amp;nbsp;') }}--&gt;
          &lt;/div&gt;
          &lt;!--&lt;tr v-for="row in source.data.queryData"&gt;--&gt;
          &lt;!--&lt;td v-for="(value,key,index)  in row" style="border: 1px solid #176b94; "&gt;--&gt;
          &lt;!--{{ key }}: {{ value }}: {{ index }}--&gt;
          &lt;!--&lt;/td&gt;--&gt;
          &lt;!--&lt;/tr&gt;--&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;!--&amp;&amp; !source.data.parentModel--&gt;
    &lt;div class="Page" v-if="!octopus.tools.IsNullOrEmpty(source.data.pageData)"&gt;
      &lt;table&gt;
        &lt;tr&gt;
          &lt;td class="TotalRows"&gt;
            &lt;span&gt;{{source.data.pageData.totalRows}} rows&lt;/span&gt;
          &lt;/td&gt;
          &lt;td class="TotalPages"&gt;
            &lt;span&gt;{{source.data.pageData.totalPages}} pages&lt;/span&gt;
          &lt;/td&gt;
          &lt;td v-bind:class="page.type" v-for="page in source.data.pageData.listData" v-on:click="jump(page.index)"&gt;
            &lt;span v-bind:class="page.class"&gt;{{page.text}}&lt;/span&gt;
            &lt;!--{{renderPage(page)}}--&gt;
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    &lt;/div&gt;
    &lt;div note="测试用" style="border: 1px solid #b6b6b6;width:100%;margin-top:10px;padding: 3px;display: none"&gt;
      &lt;div v-on:click="subFun('112233')"&gt;父级组件事件测试（调用父组件方法，子传父）&lt;/div&gt;
      &lt;div v-on:click="pushFatherFun"&gt;当前组件事件测试（子传父）&lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div v-else&gt;Octopus Framework Initialization Exception.&lt;/div&gt;
&lt;/template&gt;
&nbsp;
&lt;script&gt;
  export default {
    name: 'ListEngine', /* 这个name暂时不知道用啥用，根据官方文档说的是方便排错的 */
<span class="fstat-no" title="function not covered" >    data() {</span>
<span class="cstat-no" title="statement not covered" >      return {</span>
        octopus: this.$parent.octopus,
        control_height: "0px",
        isSearch: true,// 开启搜索
      }
    },
<span class="fstat-no" title="function not covered" >    created: function () {</span>
      // 初始化查询数据，对前端数据进行整理。
<span class="cstat-no" title="statement not covered" >      this.init();</span>
      // console.log("created: " + JSON.stringify(this.source.data.id));
      // 获取父级的父级的属性
      // this.$parent.$parent.octopus.tips.debug("Octopus List Engin Is Load.");
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[" + this.source.data.id + "] ListEngine执行了created事件。");</span>
    },
<span class="fstat-no" title="function not covered" >    mounted: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[" + this.source.data.id + "] ListEngine执行了mounted事件。");</span>
    },
<span class="fstat-no" title="function not covered" >    beforeUpdate: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[" + this.source.data.id + "] ListEngine执行了beforeUpdate事件。");</span>
    },
<span class="fstat-no" title="function not covered" >    updated: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[" + this.source.data.id + "] ListEngine执行了updated事件。");</span>
    },
<span class="fstat-no" title="function not covered" >    activated: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.load();</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[" + this.source.data.id + "] ListEngine执行了activated事件。");</span>
    },
<span class="fstat-no" title="function not covered" >    deactivated: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[" + this.source.data.id + "] ListEngine执行了deactivated事件。");</span>
    },
<span class="fstat-no" title="function not covered" >    diyyy: function () {</span>
      // this.octopus.tips.debug("List.vue执行了 diy function 事件。");
<span class="cstat-no" title="statement not covered" >      console.log("执行了Diy方法，但是这个自定义DIY方法获取不到原型链上的数据。。。比如this.octopus.tips.debug()。");</span>
    },
    computed: {
      // 如果cellData数据发生了改变,则触发这个事件。
<span class="fstat-no" title="function not covered" >      changeCell: function () {</span>
      },
<span class="fstat-no" title="function not covered" >      changePage: function () {</span>
&nbsp;
      }
    },
    methods: {
<span class="fstat-no" title="function not covered" >      init: function () {</span>
<span class="cstat-no" title="statement not covered" >        this.initData();</span>
<span class="cstat-no" title="statement not covered" >        this.initSearch();</span>
<span class="cstat-no" title="statement not covered" >        this.initConfig();</span>
      },
<span class="fstat-no" title="function not covered" >      initData: function () {</span>
        // 保存整体控件，给后续引用方法，调用使用，极其方便。
<span class="cstat-no" title="statement not covered" >        this.source.control = this;</span>
&nbsp;
      },
      // 初始化查询
<span class="fstat-no" title="function not covered" >      initSearch: function () {</span>
        // let o = this;
<span class="cstat-no" title="statement not covered" >        let searchKeys = 0;</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >        $(this.source.data.cellData).each(function (index, item) {</span></span>
          // 确保包含SearchKey
<span class="cstat-no" title="statement not covered" >          if (item.searchKey) {</span>
            // 转义成字符串，然后才能使用方法。。。
<span class="cstat-no" title="statement not covered" >            let key = (item.searchKey + "").toLocaleUpperCase();</span>
            // 如果是范围查询，扩展searchValue的数据值为2个。
<span class="cstat-no" title="statement not covered" >            if (key == "BETWEEN") {</span>
<span class="cstat-no" title="statement not covered" >              item.searchValue = ["", ""];</span>
            }
<span class="cstat-no" title="statement not covered" >            searchKeys = searchKeys + 1;</span>
          }
        });
        // 如果没有一个查询列，则不显示查询框。
<span class="cstat-no" title="statement not covered" >        this.isSearch = searchKeys == 0 ? false : true;</span>
      },
<span class="fstat-no" title="function not covered" >      initConfig: function () {</span>
        // 动态识别配置列宽度
<span class="cstat-no" title="statement not covered" >        this.source.configWidth = 0;</span>
<span class="cstat-no" title="statement not covered" >        let baseWidth = 23;</span>
<span class="cstat-no" title="statement not covered" >        if (this.viewed) {</span>
<span class="cstat-no" title="statement not covered" >          this.source.configWidth += baseWidth;</span>
        }
<span class="cstat-no" title="statement not covered" >        if (this.modified) {</span>
<span class="cstat-no" title="statement not covered" >          this.source.configWidth += baseWidth;</span>
        }
<span class="cstat-no" title="statement not covered" >        if (this.deleted) {</span>
<span class="cstat-no" title="statement not covered" >          this.source.configWidth += baseWidth;</span>
        }
      },
      // 控件变化触发，同时触发search回调事件。
<span class="fstat-no" title="function not covered" >      change: function (new_cell, old_cell) {</span>
<span class="cstat-no" title="statement not covered" >        let o = this;</span>
        // 处理关联数据
<span class="cstat-no" title="statement not covered" >        setLinkData(new_cell.name, new_cell.searchValue);</span>
&nbsp;
        // 递归处理
<span class="fstat-no" title="function not covered" >        function setLinkData(linkName, linkValue) {</span>
          // 列关联数据处理，支持关联多个父级，但是mapping需要列不同
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >          $(o.source.data.cellData).each(function (index, cell) {</span></span>
<span class="cstat-no" title="statement not covered" >            if (cell.link) {</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >              $(cell.link).each(function (linkIndex, linkData) {</span></span>
<span class="cstat-no" title="statement not covered" >                if (linkData.binding == linkName) {</span>
                  // 赋值
<span class="cstat-no" title="statement not covered" >                  linkData.value = linkValue;</span>
<span class="cstat-no" title="statement not covered" >                  cell.searchValue = null;</span>
                  // 判断当前控件是否是其他控件的父亲，如果是则同步处理。
<span class="cstat-no" title="statement not covered" >                  setLinkData(cell.name, cell.searchValue);</span>
                }
              });
            }
          });
        }
&nbsp;
&nbsp;
<span class="cstat-no" title="statement not covered" >        let IsSearch = true;</span>
        // 在范围模式下只有2个格子都有值，才触发查询。
<span class="cstat-no" title="statement not covered" >        if (new_cell.searchKey.toLocaleUpperCase() == "BETWEEN") {</span>
<span class="cstat-no" title="statement not covered" >          if (this.octopus.tools.IsNullOrEmpty(new_cell.searchValue[0]) || this.octopus.tools.IsNullOrEmpty(new_cell.searchValue[1])) {</span>
<span class="cstat-no" title="statement not covered" >            IsSearch = false;</span>
          }
        }
&nbsp;
<span class="cstat-no" title="statement not covered" >        if (IsSearch) {</span>
          // 只要涉及到查询的，全部恢复到首页。
<span class="cstat-no" title="statement not covered" >          this.source.data.pageData.index = 1;</span>
          // // 执行查询
<span class="cstat-no" title="statement not covered" >          this.load();</span>
          // 回调搜索函数给开发使用
<span class="cstat-no" title="statement not covered" >          if (this.searched) {</span>
<span class="cstat-no" title="statement not covered" >            this.searched(new_cell, old_cell);</span>
          }
        }
      },
<span class="fstat-no" title="function not covered" >      del: function (row) {</span>
        // 正常调用自身的删除接口
&nbsp;
&nbsp;
<span class="cstat-no" title="statement not covered" >        if (this.deleted) {</span>
<span class="cstat-no" title="statement not covered" >          this.deleted(row);</span>
        }
      },
<span class="fstat-no" title="function not covered" >      reload: function () {</span>
<span class="cstat-no" title="statement not covered" >        console.log(JSON.stringify(this.source));</span>
      },
      // 执行加载
<span class="fstat-no" title="function not covered" >      load: function (type) {</span>
        // 满足要求才执行查询
<span class="cstat-no" title="statement not covered" >        if (this.source.data.id &amp;&amp; this.source.data.cellData) {</span>
<span class="cstat-no" title="statement not covered" >          let o = this;</span>
          // 替换层级值（如果有）
<span class="cstat-no" title="statement not covered" >          this.source.data.parentValue = this.octopus.tools.parseScript(this.source.data.parentValue);</span>
          // // 循环处理转义相关八抓鱼代码
          // $(this.source.data.cellData).each(function (index, item) {
          //   if (item.filterValue) {
          //     // 只有非范围控件支持绑定关联，所以这里只要判断filterValue下标0的数据即可。
          //     item.filterValue[0] = o.octopus.tools.parseScript(item.filterValue[0]);
          //     // console.log("======" + JSON.stringify(item));
          //   }
          // })
&nbsp;
          // 请求后台八爪鱼API框架，为了节约流量，所以不把queryData大型包再发回去。
<span class="cstat-no" title="statement not covered" >          this.octopus.request.api.post("/Octopus/Engine/List", {</span>
              id: this.source.data.id,
              parentKey: this.source.data.parentKey,
              parentValue: this.source.data.parentValue,
              orderData: this.source.data.orderData,
              cellData: this.source.data.cellData,
              pageData: this.source.data.pageData,
              width: this.source.data.width,
              height: this.source.data.height
            },
            // 处理回调事件，通过分析data.status.code的状态来实现。
<span class="fstat-no" title="function not covered" >            function (data) {</span>
<span class="cstat-no" title="statement not covered" >              if (data.status.code == 200) {</span>
                // 计算表格总宽度
<span class="cstat-no" title="statement not covered" >                o.source.reallyWidth = 0;</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >                $(data.content.cellData).each(function (index, cell) {</span></span>
<span class="cstat-no" title="statement not covered" >                  cell.validate = true;</span>
<span class="cstat-no" title="statement not covered" >                  cell.model = "LIST";</span>
&nbsp;
                  // 处理宽度
<span class="cstat-no" title="statement not covered" >                  if (cell.show) {</span>
<span class="cstat-no" title="statement not covered" >                    o.source.reallyWidth += cell.width;</span>
                  }
&nbsp;
                  ////////////////////// List内控件形态转换逻辑 /////////////////////////
                  // 如果是多行文本框、标签框，则修改为文本框，否则查询组件无法查询哈。
<span class="cstat-no" title="statement not covered" >                  if (cell.controlTypeID == 2 || cell.controlTypeID == 4) {</span>
<span class="cstat-no" title="statement not covered" >                    cell.controlTypeID = 1;</span>
                  }
                  // 如果是日历时间框，则改为日历框，否则查询不太友好。
                  else if (cell.controlTypeID == 6) {
<span class="cstat-no" title="statement not covered" >                    cell.controlTypeID = 5;</span>
                  }
&nbsp;
                });
                // 不是父级模式 则 渲染分页
                // if (!data.content.parentModel) {
<span class="cstat-no" title="statement not covered" >                if (data.content.pageData) {</span>
                  // 渲染Page对象
<span class="cstat-no" title="statement not covered" >                  o.renderPage(data.content.pageData);</span>
                }
                // 二次进入时有数据则只更新cellData, queryData,pageData部分。
<span class="cstat-no" title="statement not covered" >                if (o.source.data.queryData) {</span>
<span class="cstat-no" title="statement not covered" >                  o.$set(o.source.data, "cellData", data.content.cellData);</span>
<span class="cstat-no" title="statement not covered" >                  o.$set(o.source.data, "queryData", data.content.queryData);</span>
<span class="cstat-no" title="statement not covered" >                  o.$set(o.source.data, "pageData", data.content.pageData);</span>
                }
                // 首次加载，进行全量更新。
                else {
                  // 新增属性，需要使用$set，详细参考：https://blog.csdn.net/panyang01/article/details/76665448
<span class="cstat-no" title="statement not covered" >                  o.$set(o.source, "data", data.content);</span>
                  // 100毫秒以后触发Tips组件，节约性能，之前在组件内部每个控件创建一次比较浪费资源。
<span class="cstat-no" title="statement not covered" >                  o.octopus.tips.render();</span>
<span class="cstat-no" title="statement not covered" >                  if (o.loaded) {</span>
<span class="cstat-no" title="statement not covered" >                    o.loaded(data);</span>
                  }
                }
              } else {
<span class="cstat-no" title="statement not covered" >                o.octopus.tips.error(data);</span>
              }
&nbsp;
              // 如果高度为auto或丫根没有定义，则默认理解为自动高度,如果是100%，则认为是List自动识别高度模式
<span class="cstat-no" title="statement not covered" >              if (o.source.data.height == "auto") {</span>
<span class="cstat-no" title="statement not covered" >                o.resize();</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >                window.onresize = function () {</span></span>
<span class="cstat-no" title="statement not covered" >                  o.resize();</span>
                }
              }
              // 如果是完整模式，比如多控件组合的，则不限高。
              else if (o.source.data.height == "full") {
<span class="cstat-no" title="statement not covered" >                o.control_height = "100%";</span>
              }
              // 非自动模式，则加载配置的高度。
              else {
<span class="cstat-no" title="statement not covered" >                o.control_height = o.source.data.height;</span>
              }
            });
        }
      },
      // 解析列数据
<span class="fstat-no" title="function not covered" >      parseCellValue: function (row, name) {</span>
        // 得到列数据
<span class="cstat-no" title="statement not covered" >        let value = row[name];</span>
&nbsp;
<span class="cstat-no" title="statement not covered" >        value = value == null ? '&amp;nbsp;' : (value.toString().length &gt; 0 ? value : '&amp;nbsp;');</span>
<span class="cstat-no" title="statement not covered" >        if (value == "是" || value == "已完成") {</span>
<span class="cstat-no" title="statement not covered" >          value = "&lt;span class='icon icon-70chenggong'&gt;&amp;nbsp;&lt;/span&gt;";</span>
<span class="cstat-no" title="statement not covered" >        } else if (value == "否" || value == "异常") {</span>
<span class="cstat-no" title="statement not covered" >          value = "&lt;span class='icon icon-71shibai'&gt;&amp;nbsp;&lt;/span&gt;";</span>
<span class="cstat-no" title="statement not covered" >        } else if (value == "执行中") {</span>
<span class="cstat-no" title="statement not covered" >          value = "&lt;span class='icon icon-73dengdai'&gt;&amp;nbsp;&lt;/span&gt;";</span>
<span class="cstat-no" title="statement not covered" >        } else if (value == "未启动") {</span>
<span class="cstat-no" title="statement not covered" >          value = "&lt;span class='icon icon-zhihangzhong'&gt;&amp;nbsp;&lt;/span&gt;未启动";</span>
        }
&nbsp;
        // 如果是parentModel，则对父级字段进行样式绑定，这样就可以由主题进行自由缩进或样式修改。
<span class="cstat-no" title="statement not covered" >        if (this.source.data.parentModel) {</span>
          // 检索出所有需要层级显示的列
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >          let ListFilterData = $.grep(this.source.data.cellData, function (value) {</span></span>
<span class="cstat-no" title="statement not covered" >            return value.hierarchy;//筛选出层级显示为true的列</span>
          });
          // 遍历
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >          $(ListFilterData).each(function (index, item) {</span></span>
<span class="cstat-no" title="statement not covered" >            if (name == item.name) {</span>
<span class="cstat-no" title="statement not covered" >              value = "&lt;span class='level_" + row["ParentLevel"] + "'&gt;" + value + "&lt;/span&gt;"</span>
            }
          });
        }
&nbsp;
<span class="cstat-no" title="statement not covered" >        return value;</span>
      },
<span class="fstat-no" title="function not covered" >      scroll: function (dom) {</span>
<span class="cstat-no" title="statement not covered" >        let SCROLL_VALUE = $(dom).scrollLeft();</span>
        // $(".Data .Head").scrollLeft(SCROLL_VALUE);
<span class="cstat-no" title="statement not covered" >        $(this.$refs.LIST_HEAD).scrollLeft(SCROLL_VALUE);</span>
      },
<span class="fstat-no" title="function not covered" >      jump: function (index) {</span>
        // 更新页码
<span class="cstat-no" title="statement not covered" >        this.source.data.pageData.index = index;</span>
        // 发起加载
<span class="cstat-no" title="statement not covered" >        this.load();</span>
        // 如果有回调事件，把整个page对象回传，交由程序员控制。
<span class="cstat-no" title="statement not covered" >        if (this.paged) {</span>
<span class="cstat-no" title="statement not covered" >          this.paged(index);</span>
        }
      },
      // 界面的高度撑开由Menu组件实现，故需求写在这里
<span class="fstat-no" title="function not covered" >      resize: function () {</span>
<span class="cstat-no" title="statement not covered" >        let o = this;</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >        $(document).ready(function () {</span></span>
          // 延迟0.5秒加载高度
<span class="cstat-no" title="statement not covered" >          setHeight();</span>
&nbsp;
          // 启动高度设定
<span class="fstat-no" title="function not covered" >          function setHeight() {</span>
<span class="cstat-no" title="statement not covered" >            o.control_height = 0;</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >            setTimeout(function () {</span></span>
              // 列表高度 = 可视区高度 - 文档高度（上面高度已经设置位0，所以文档高度正常情况都是小于可视区高度的）
<span class="cstat-no" title="statement not covered" >              let list_height = $(window).height() - $(document.body).height();</span>
              // 列表高度 大于 0 才有设置的意义，否则太小，出滚动条。
<span class="cstat-no" title="statement not covered" >              if (list_height &gt; 0) {</span>
<span class="cstat-no" title="statement not covered" >                o.control_height = list_height + "px";</span>
              }
              // console.log("设置高度：" + o.control_height);
              // console.log("doc hei:" + $(document).outerHeight() + ", 可视区高度：" + $(window).height()
              //   + ", 文档高度：" + $(document.body).height() + ", " + "分页高度：" + $(".Page").outerHeight());
            }, 500);
          }
        });
      },
<span class="fstat-no" title="function not covered" >      open: function () {</span>
<span class="cstat-no" title="statement not covered" >        window.open(window.location.href, '_blank')</span>
        // alert(window.location.href);
      },
<span class="fstat-no" title="function not covered" >      renderPage: function (pageData) {</span>
        // 渲染list数据
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >        $(pageData.listData).each(function (index, page) {</span></span>
<span class="cstat-no" title="statement not covered" >          if (page.type == "Home") {</span>
<span class="cstat-no" title="statement not covered" >            page.index</span>
<span class="cstat-no" title="statement not covered" >            page.class = "glyphicon glyphicon-step-backward";</span>
<span class="cstat-no" title="statement not covered" >          } else if (page.type == "Previous") {</span>
<span class="cstat-no" title="statement not covered" >            page.class = "glyphicon glyphicon-chevron-left";</span>
<span class="cstat-no" title="statement not covered" >          } else if (page.type == "Next") {</span>
<span class="cstat-no" title="statement not covered" >            page.class = "glyphicon glyphicon-chevron-right";</span>
<span class="cstat-no" title="statement not covered" >          } else if (page.type == "End") {</span>
<span class="cstat-no" title="statement not covered" >            page.class = "glyphicon glyphicon-step-forward";</span>
          } else {
<span class="cstat-no" title="statement not covered" >            page.text = page.index;</span>
          }
        });
      },
&nbsp;
      ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
<span class="fstat-no" title="function not covered" >      ltDetailFun() {</span>
<span class="cstat-no" title="statement not covered" >        console.log(this.octopus.passport);</span>
<span class="cstat-no" title="statement not covered" >        console.log("执行了子组件中的方法。");</span>
      },
<span class="fstat-no" title="function not covered" >      pushFatherFun() {</span>
<span class="cstat-no" title="statement not covered" >        this.$emit("subsendfather", "44556677");</span>
      },
<span class="fstat-no" title="function not covered" >      remove: function () {</span>
        // 采用样式删除，会导致所有使用这个样式的DOM被删除。
        // $(".jubuCp").remove();
<span class="cstat-no" title="statement not covered" >        this.octopus.tips.debug("Item.vue.vue执行了 remove 事件。");</span>
      },
    },
    watch: {
      // 监听计算属性的变化
<span class="fstat-no" title="function not covered" >      changeCell: function (newval, oldval) {</span>
<span class="cstat-no" title="statement not covered" >        console.log("changeCell:\nOLD: " + JSON.stringify(oldval) + "\n\nNEW: " + JSON.stringify(newval));</span>
      }
      // source: {
      //   handler(newval, oldval) {
      //     console.log("waa: " + JSON.stringify(oldval.data.cellData) + "变更为" + JSON.stringify(newval.data.cellData));
      //   },
      //   deep: true // 启用深度监听模式，可监控到属性。
      // }
    },
    props: ["source", "loaded", "created", "exported", "searched", "paged", "viewed", "modified", "deleted"]
  }
&lt;/script&gt;
&nbsp;
/*  scoped的意思是这里的样式只对当前页面有效不会影响其他页面，还有可以设置lang="scss"就是支持css预编译，也就是支持sass或者less  */
&lt;!-- Add "scoped" attribute to limit CSS to this component only --&gt;
&lt;style scoped&gt;
  h1, h2 {
    font-weight: normal;
  }
&lt;/style&gt;
&nbsp;</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
  Code coverage
  generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jan 20 2020 17:54:15 GMT+0800 (GMT+08:00)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>
<script>
window.onload = function () {
        if (typeof prettyPrint === 'function') {
            prettyPrint();
        }
};
</script>
<script src="..\..\..\..\sorter.js"></script>
</body>
</html>
